The present invention relates to a communication device and method for data unit based communication, where implementations of at least a first and second communication protocol are used, and PDUs (Protocol Data Units) of a third, upper layer protocol are segmented into PDUs of the second, lower layer protocol, and these lower layer PDUs are sent over a physical connection in accordance with the first protocol, which provides adjustable reliability levels for the lower layer PDUs.
As is known in the art of communication, protocols are sets of rules with which two points can exchange data units in a defined way. Two implementations of a protocol at two points that exchange data units are also referred to as peers. For the purpose of the present specification, the term data unit or protocol data unit (PDU) will refer to the finite data carrier specified by a given protocol. It may be noted that with respect to different protocols, different terms are used for the PDUs. For example, the data units of the internet protocol (IP) are referred to as packets, whereas the data units of the point-to-point protocol (PPP) are referred to as frames. All such terms, i.e. frames, packets etc. fall under the general term data unit.
Furthermore, the concept of layering different protocols is also well-known. According to this concept, data units of one protocol are embedded into data units of another protocol when being sent, and are extracted when being received. The term xe2x80x9cembeddingxe2x80x9d refers to both the possibility of encapsulation as well as segmentation.
FIG. 2 shows a generic stack, and the figure introduces a number of terms that will be used as examples and for explanatory purposes in the following description. The stack shown in FIG. 2 shows five layers. Naturally, the number of layers can be larger. L3 refers to a network layer protocol, e.g. the internet protocol IP. L4 refers to a protocol above the network layer, e.g. the transmission control protocol TCP. L4 is also to be seen as representing all protocols that may lie above. L2_Frame refers to a link layer protocol which embeds or frames L3 PDUS, for example the point to point protocol PPP, which is typically used for circuit-switched data in systems operating in accordance with the GSM (global system for mobile communication) standard. Other examples would be LLC (logical link control; defined in standard GSM 04.64) used for GPRS (General Packet Radio Service; defined in standard GSM 03.64) or W-CDMA (wide band code division multiple access). L2_ARQ refers to a link layer protocol that can segment L2_Frame PDUs into smaller L2_ARQ PDUs and implements an automatic repeat request function ARQ on the basis of these L2_ARQ PDUS. Automatic repeat request (ARQ) means that the protocol supports an automatic retransmission of PDUs under predetermined conditions. Examples of an L2_ARQ protocol are the radio link protocols RLP used for circuit-switched data in GSM, the radio link control protocol (RLC) used for GPRS and the RLCP (Radio Link Control Protocol) used for W-CDMA.
L1 refers to a physical layer protocol or a combination of physical layer protocols that can operate on the basis of single or plural L2_ARQ PDUs. The L1 protocol is to be understood as a protocol that can provide at least two different reliability levels for the transmission of L2_ARQ PDUs. Examples of the L1 protocol are FEC protocols (forward error control) or power control protocols, or a combination of both. For example, different L2_ARQ PDUs can be protected with varying strength of forward error control and/or with varying transmission power. Further possibilities for adjusting the transmission reliability, which may be used individually or combined, are changing the spreading factor in CDMA or W-CDMA, the interleaving depth, the modulation or the antenna diversity. As these concepts are known in the art, a further description is not necessary.
It may be noted that the L2_Frame protocol is optional, as it would also be possible that the L3 protocol PDUs are directly segmented by the L2_ARQ protocol, without first being encapsulated into L2_Frame protocol data units.
Commonly, the L1 protocol will have a general adoption mechanism for deciding on the reliability level that is to be set for each L2_ARQ PDU. Different known physical layer protocols provide different adoption mechanisms, e.g. the setting of the reliability level may depend on the quality of the physical link over which data units are being sent.
Such an arrangement can lead to a number of problems. Many L3 protocols and protocols running on top of L3 are sensitive to a delay per data unit and can perform badly or even fail if the delay per data unit exceeds certain bounds. The problem is that when the L3 protocol is running over L2_Frame/L2_ARQ or on L2_ARQ directly, the L2_ARQ protocol can introduce an additional delay per L3 PDU, due to the retransmission of L2_ARQ PDUs. This additional delay is basically unbounded and can cause considerable problems. This will be explained in connection with the diagram shown in FIG. 3.
For the following explanation, it will be assumed that L2_Frame PDUs are being segmented by the L2_ARQ protocol, but as already mentioned above, it is equally well possible that L3 protocol PDUs are directly being segmented.
FIG. 3a shows one L2_Frame PDU, and this higher layer PDU is segmented into a given number of L2_ARQ data units. Two of these L2_ARQ data units are marked as a and b, respectively, for the purpose of a later explanation. As also indicated in FIG. 3a, the L2_Frame PDU has a given transmission delay, i.e. a given length, just as the L2-ARQ data unit has a given length or transmission delay.
As show n in FIG. 3b, the following problem can occur. If the L2_ARQ data unit a has to b e re transmitted, then the number of L2_ARQ data units that needs to be sent is increased by one, and correspondingly the transmission of the L2_Frame PDU is delayed by the transmission delay of one L2-ARQ data unit. However, if the L2_ARQ data unit marked as b, which lies at the end of the L2_Frame PDU, has to be retransmitted, then this will delay the transmission of the L2_Frame PDU by the round trip time (RTT) of the L2_ARQ layer. The round trip time RTT of a layer is basically the time that passes between the sending of a data unit of that layer by a sending peer, and the receipt by the sending peer of the acknowledgment message that confirms that the given data unit was received at the other end by the receiving peer. The L2_ARQ RTT is typically much longer than the L2_ARQ Transmission delay.
As already mentioned, this delay can cause significant problems in higher layers.
Another problem can occur in systems where the L2_ARQ peer uses window-based flow control. Window-based flow control is well-known in the art and basically means that the flow control is accomplished in accordance with a defined number of consecutive octets or bits that is referred to as a send window, where the allowed number of unacknowledged data units is limited to said send window. In other words, flow control is such that in a given series of data units to be sent, a certain number of data units following a given data unit may be sent out, even though the safe receipt of said given data unit has not yet been acknowledged, but this number of unacknowledged data units is limited to the send window. As already mentioned, this concept is well-known in the art, see e.g. TCP/IP Illustrated, Vol. 1, The Protocols, by W. Richard Stevens, Addison-Wesley Longman, Inc. 1994. A further explanation is therefore not necessary.
In an L2_ARQ peer that uses window-based flow control, the sender cannot send any new L2_ARQ PDUs when the send buffer is exhausted with back-logged copies of L2_ARQ PDUs that have already been sent but not acknowledged by the receiving L2_ARQ peer. This will briefly be explained in connection with FIG. 9. This figure shows a consecutive series of PDUs to be sent, fourteen in this example. According to window-based flow control, the left end (PDU 4) of the send window SW, which is shown as comprising the PDUs 4 to 10, moves in accordance with the PDUs that were sent and acknowledged. In the example of FIG. 9, PDUs 1 to 3 have been sent and acknowledged, so that PDU 4 constitutes the left end of the send window. For the purpose of the present explination it will be assumed that the length of the send window is constant.
The send window itself may be generally seen as having two parts, namely older PDUs that have been sent but not acknowledged (4 to 6) and the remaining PDUs in the send window SW, which in accordance with flow control are allowed to be sent because they are in the send window, but which have not yet been sent (7 to 10).
A stall of the send window may occur in the following situation. As long as the oldest PDU (4 in the example) of the send window has not been sent correctly, it can not be acknowledged. As a consequence, if no acknowledgment for the oldest PDU is received, the left end of the send window SW will not move to the right. As long as there are PDUs in the send window that have not yet been sent, this basically does not cause problems, as a sending of PDUs continues. But if all of the PDUs in the send window have been sent, then the further transmission of PDUs is completely blocked as long as the oldest PDU is not acknowleged, i.e. the send window is stalled because it can not move to the right. As a consequence, the above described delay caused by L2_ARQ retransmissions in the order of the round trip time may stall the send window and lead to a decreased throughput.
It is the object of the present invention to solve these problems and provide a communication device and method of the aforementioned kind that can reduce the delay caused by the L2_ARQ layer retransmission s.
This object is solved by the devices and methods described in independent claims.
According to the present invention, when having implementations of first protocol that specifies different reliability levels for sending PDUs of a second protocol, where the second protocol specifies segmentation of PDUs of a third, higher layer protocol, a capability is introduced for setting the reliability level of second protocol (L2_ARQ) PDUs differently for second protocol PDUs belonging to a defined data structure containing such second protocol (L2_ARQ) data units.
In the following, the terminology used in the introduction will be retained, and the above description is herewith incorporated into the description of the invention. In this way, the present invention can be used in the context of any mechanism for setting the reliability level, e.g. those already mentioned, i.e. transmission power, forward error correction, spreading factor, interleaving depth, modulation or antenna diversity etc., be it alone or in any desired combination.
According to a preferred embodiment, the defined data structure containing second protocol PDUs is one third protocol PDU that was segmented into second protocol PDUs, i.e. one L2_Frame or L3 PDU in the above terminology. In this case, the present invention provides the capability of setting the L1 reliability level differently for L2_ARQ PDUs with respect to their position in one L2_Frame (or L3) PDU. In other words, the data units of the L2_ARQ protocol that belong to one L2_Frame PDU can have their reliability level set in dependence on specific properties relating to the fact that the L2_ARQ PDUs are in one L2_Frame PDU and relating to the relationship between these L2_ARQ PDUs with respect to one another.
In this embodiment, the data units of the second protocol that belong to one data unit of a third protocol (referred to as L2_Frame or L3 above) are identified, and the data units of the second protocol that belong together in such a way are then classified into at least two different categories, and finally the capability is provided of setting the reliability level for these data units of the second protocol differently for different categories.
According to a preferred version of this embodiment, it is possible to solve the above problem described in connection with FIG. 3, namely if two categories are defined, where the first relates to the L2_ARQ data units belonging to the front part of a L2_Frame or L3 data unit, and a second category is defined that relates to the L2-ARQ data units that come towards the end, and it is possible to increase the reliability level (e.g. increased sending power or improved forward error correction) of the data units that come towards the end, the detrimental effect resulting from the situation described in connection with FIG. 3 can be avoided, because the increased level of reliability for such L2_ARQ data unit such as b (see FIG. 3b), avoid the retransmission of such L2_ARQ data units, so that the delay caused by the retransmission of L2_ARQ PDUs is preferably restricted to the actual L2_ARQ transmission delay, and not determined by the round trip time.
According to another preferred embodiment, the defined data structure is not one PDU of the protocol that lies immediately above the L2_ARQ protocol, but is one PDU of protocol that lies higher, e.g. referred to as L4 in FIG. 2. Preferably, as in the previous embodiment, the reliability level of L2_ARQ PDUs that are associated with the end of the L4 PDU is set higher than the level of the preceding L2_ARQ PDUS. This embodiment is especially advantageous in the event that the L4 PDU is fragmented into more than one L3 PDU. An example of this is the so-called IP fragmentation of TCP packets. Then it is e.g. possible to set the reliability level of those L2_ARQ PDUs that belong to the fragments towards the end of the L4 PDU higher than for the PDUs belonging to the first fragments.
According to another preferred embodiment, the defined data structure containing L2_ARQ data units is the send window used for window-based flow control. Then, the problem of stalled windows in window-based flow control may be solved, namely by differentiating between L2_ARQ PDUs that are at the beginning of the send window (older PDUs) and those that are towards the end (younger PDUs), where the retransmission of older PDUs (e.g. PDU 4 in FIG. 9) is done with a higher reliability level than for the first transmission of the same PDU and/or than for younger PDUs. Preferably the degree of increase of the reliability level is a function of the age (i.e. the older the higher) and/or a function of how often the PDU has been transmitted (i.e. each repeated retransmission receives a higher reliability level than the previous retransmission or the first transmission).
Also, with the help of another preferred embodiment, it is possible to discriminate between different parts of an L3, L2_Frame, or L4 PDU at the L1 protocol layer, and to treat those discriminated parts differently. It becomes possible to set the reliability level of certain parts that are more sensitive to delay higher than the reliability level of other parts. For example, the IP header of an IP packet (L3 PDU) could be protected more (transmitted at a higher L1 reliability level) than the payload. This decreases the average delay for transmitting the IP header (less L2_ARQ retransmissions) and allows the IP router to make the routing decision as soon as possible.
The inventive concept, which may be referred to as providing the capability of unequal error protection for different parts of a defined data structure, presents the following advantages:
low end-to-end third protocol (L2_FRAME/L3) PDU transfer delay,
low end-to-end third protocol (L2_FRAME/L3) PDU delay jitter,
efficient bandwidth utilization,
less buffer space for storing the L2_ARQ PDUs thus reducing the overall system cost, and
if the scheme is implemented at every possible protocol layer, the savings due to less buffer space requirements may be very high and the overall quality of service perceived by users improves.
A very important advantage of the present invention is that it does not require any modifications of the relevant protocols themselves, i.e. it does not affect any standard. It only requires changes to the protocol implementations.